package model

import (
	"github.com/streadway/handy/atomic"
)

const (
	TempObjTick = 0
	TempMsgTick = 1
	TempOmsgTick = 2
	TempEventTick = 3
	TempCopyTTick = 4
	TempObjAtick = 5
	TempObjOTick = 6
	TempObjMotionTick = 7
	TempObjImpacTick = 8
	TempObjUpdaTezoneTick = 9
	TempObjAiBaseTick = 10
	TempObjAiControlTick = 11
	TempObjAiMoveTotick = 12
	TempObjAiJuagestateTick = 13
	TempCheckAreaTick = 14

)

type Scene struct {
	TempTTickNum int
	curThreadId string
	MEfficiencyData []*TickTimeData
	MnSceneId int
	MSceneData *SceneData
	MCopySceneData *CopySceneData
	MZoneList []*Zone
	MRect []*Zone
	MNPlayerNum int
	MNSublineNum int
	MSublineTimer *NowTimer
	MScanInfo *ScanInfo
	MZoneInfo *ZoneInfo
	MNextNpcIndex atomic.Int
	MNSceneStatus SceneState
	LastTickTimer int64
	MMoonMap *MoonMap
	MAEventAreaList []*EventArea
	MATickCount *SceneTickCount
	SceneNpcDataMap map[string]*SceneNpcData
	Boss *NpcPlayer
}

func NewScene() *Scene {
	tempTTickNum := TempObjAiJuagestateTick + 2
	return &Scene{
		TempTTickNum: tempTTickNum,
		MEfficiencyData: make([]*TickTimeData,tempTTickNum),
	}
}
